import { EntityDto } from '@abp/ng.core';

export interface InventoryTransferDto {
  id: string;
  InventoryTransferNo: string;
  InventoryTransferOUT: string;
  InventoryTransferIN: string;
  InventoryTransferType: string;
  InventoryTransferOperator: string;
  sourceWarehouse: string;
  targetWarehouse: string;
  transferDate: string;
  status: string;
  totalAmount: number;
  remarks: string;
  transferType: string;
  handler: string;
  creatorName: string;
  creationTime: string;
  details: InventoryTransferDetailDto[];
  merchandiseList?: InventoryTransferDetailDto[];
  totalQuantity?: number;
  totalAmountSum?: number;
  productNames?: string;
}

export interface InventoryTransferDetailDto {
  id?: string | number;
  InventoryTranId?: number;
  GoodsId?: number;
  MerchandiseNo: string;
  MerchandiseName: string;
  MerchandiseModel: string;
  MerchandiseUnit: string;
  MerchandiseType: string;
  MerchandiseOut?: string;
  MerchandiseIN?: string;
  MerchandiseNumber?: string;
  MerchandiseINPrice: number;
  MerchandisePrice?: number;
  Reamres: string;
  merchandiseNumber?: number;
  merchandisePrice?: number;
  merchandiseName?: string;
}

export interface CreateUpdateInventoryTransferDto {
  InventoryTransferNo: string;
  sourceWarehouse: string;
  targetWarehouse: string;
  transferDate: string;
  status: string;
  totalAmount: number;
  remarks: string;
  transferType: string;
  handler: string;
  details: CreateUpdateInventoryTransferDetailDto[];
}

export interface CreateUpdateInventoryTransferDetailDto {
  productName: string;
  productCode: string;
  specification: string;
  unit: string;
  productType: string;
  transferQuantity: number;
  unitPrice: number;
} 